RedEnvioSeguimiento = function(){
	var rowBodyTplDemandante = Ext.create("Ext.XTemplate",[
      '<tpl for=".">',
	      '<div class="tplTr">',
			'<div class="tplTdTitle">',
				'FOLIO:',
			'</div>',
			'<div class="tplTd">',
				'{reddemandantefolio}',
			'</div>',
			'<div class="tplTdTitle">',
				'ESTADO ACTUAL:',
			'</div>',
			'<div class="tplTd">',
				'{ctgestadopostulantevinculacionnombre}',
			'</div>',
		 '</div>',
		 '<div class="tplTr">',
			'<div class="tplTdTitle">',
				'FECHA:',
			'</div>',
			'<div class="tplTd">',
				'{reddemandantefecharegistro}',
			'</div>',
			'<div class="tplTdTitle">',
				'TELEFONO:',
			'</div>',
			'<div class="tplTd">',
				'{reddemandantetelefono}',
			'</div>',
		 '</div>',
      '</tpl>'
    ]);
	var rowBodyTplEnvioSeguimiento = Ext.create("Ext.XTemplate",[
         '<tpl for=".">',
         	'<div class="tplTr">',
         		'<div class="tplTdTitle">',
         			'EMPRESA:',
 				'</div>',
 				'<div class="tplTd">',
 					'{redempresarazonsocial}',
    			'</div>',
 			'</div>',
 			'<div class="tplTr">',
	 			'<div class="tplTdTitle">',
					'TELEFONOS:',
				'</div>',
				'<div class="tplTd">',
					'{redempresatelefono}',
				'</div>',
 				'<div class="tplTdTitle">',
 					'PLAZAS:',
 				'</div>',
 				'<div class="tplTd">',
 					'{redofertadatoscantidadplazas}',
				'</div>',
 			'</div>',
 			'<div class="tplTr">',
	 			'<div class="tplTdTitle">',
	 				'CONTACTO:',
	 			'</div>',
	 			'<div class="tplTd">',
	 				'{redofertacontactonombres}',
	 			'</div>',
	 			'<div class="tplTdTitle">',
	 				'TELEFONO:',
	 			'</div>',
	 				'{redofertacontactocelular}',
	 			'</div>',
 			'</div>',
 			'<div class="tplTr">',
	 			'<div class="tplTdTitle">',
					'EMAIL:',
				'</div>',
				'<div class="tplTd">',
					'{redofertacontactoemail}',
				'</div>',
			'</div>',
         '</tpl>'
    ]);
	return {
		getRowBodyContents: function(data) {
            return rowBodyTplEnvioSeguimiento.applyTemplate(data);
        },
        getRowBodyContentsDem: function(data) {
            return rowBodyTplDemandante.applyTemplate(data);
        },
        cambiarEstadosDemandante: function(redOfertaId){
        	var records = Ext.getCmp("redDemandantesByOfertaGrid").getStore().queryBy(function(record) {
    			return record.get('seleccionado') === true;
    		});
    		var ids = [];
    		records.each(function(record) {
    			ids.push(record.get('reddemandantefolio'));
    		});
    		/*alert(ids);*/
    		Asg.Message.progress("Obteniendo Informaci\u00F3n...");
			Ext.Ajax.request({
				timeout: Asg.constants.TIMEOUT_SECONDS,
				url: Asg.constants.CONTEXT_PATH + "/red/demandante/cambiarEstadosDemandante",
			    params: {
			    	"ctgEstadoPostulanteVinculacion.ctgEstadoPostulanteVinculacionId": Asg.Utils.getValue("estadoPostulante"),
			    	"ctgMotivoNoContratacion.ctgCatalogoId" : Asg.Utils.getValue("ctgRazonNoContratacion"),
			    	redDemandantes: ids,
			    	redOfertaId : redOfertaId
			    },
			    callback: function(options, success, response){
			    	Ext.Msg.hide();
			    	if(success){
			    		var jsonObject = Asg.Utils.ajaxRequestGetJson(response);
			    		Asg.Grid.loadData("redDemandantesByOfertaGrid", jsonObject.redDemandantes);
			    	}
			    }
			});
        },
		windowEnvioSeguimiento : function(redOfertaId){
			Ext.define("encabezadoOfertaModel",{
				extend: "Ext.data.Model",
				fields: [
					"redofertaid",
					"redofertadatoid",
					"redofertadatopuesto",
					"redempresafolio",
					"redempresarazonsocial",
					"redempresatelefono",
					"redofertacontactonombres",
					"redofertacontactocelular",
					"redofertacontactoemail",
					"redofertadatoscantidadplazas"
					
    	        ]
			});
			Asg.Message.progress("Obteniendo Informaci\u00F3n...");
			Ext.Ajax.request({
				timeout: Asg.constants.TIMEOUT_SECONDS,
				url: Asg.constants.CONTEXT_PATH + "/red/oferta/viewEstadoSeguimientoByOferta",
			    params: {
			    	redOfertaId:  redOfertaId
			    },
			    callback: function(options, success, response){
			    	Ext.Msg.hide();
			    	if(success){
			    		var jsonObject = Asg.Utils.ajaxRequestGetJson(response);
			    		var estado;
			    		
			    		if(jsonObject){
			    			new Ext.Window({
			    				id: "windowEnvioSeguimiento",
			    				modal: true,
			    				width: 700,
			    				height: 675,
			    				maximizable: false,
			    				autoScroll: true,
			    				resizable	: false,
			    				title: "Envio y Seguimiento",
			    	        	bodyStyle: "background: #DFE8F6",
			    	        	items:  new Ext.FormPanel({
			    	        		modal: true,
			    	        		
			    	        		defaults: {margins: "5 5 5 5"},
			    					layout: {
			    					    type: "vbox",
			    					    align : "stretch",
			    					    pack  : "start"
			    					},
			    					items:[{
			    		        		xtype: "fieldset",
			    		        		title: "Envio y Seguimiento",
			    		        		width: 795,
			    		        		layout: "anchor",
			    		        		colspan: 2,
			    		        		defaults: {
			    		                    anchor: "100%",
			    		                    align: "center"
			    		                },
			    		                items: [{
			    		                	xtype: "grid",
			    		                	id: "gridEncabezadoOferta",
			    		                	width: 745,
			    							height: 150,
			    							store: new Ext.data.Store({
			    						    	model: "encabezadoOfertaModel",
			    						    	autoLoad: true,
			    						    	proxy:{
			    						    		type: "ajax",
			    						    		url: Asg.constants.CONTEXT_PATH + "/red/oferta/getEncabezadoOferta",
			    						    		reader: {
			    						    			type: "json",
			    						    			root: "encabezado"
			    						    		}
			    						    	},
			    						    	listeners: {
			    			        				beforeload: function(store, operation, options){
			    						    			if(!operation) operation = {};
			    			        					if(!operation.parms) operation.params = {};
			    			        					
			    			        					operation.params["redOfertaId"] = redOfertaId;
			    						    		}
			    						    	}
			    						    	
			    							}),
			    							columns: [
			    						          {header: "<B>FOLIO</B>", dataIndex: "redofertaid", width: 45},
			    						          {header: "<B>OFERTA</B>", dataIndex: "redofertadatopuesto", flex: 1}
			    				            ],
			    				            features: [{
			    				            	ftype: 'rowbody',
			    				                getAdditionalData: Asg.Grid.getAdditionalData,
			    				                getRowBodyContents: RedEnvioSeguimiento.getRowBodyContents
			    				            }]
			    				            
			    		                }]
			    		        	},{
			    		        		xtype: "fieldset",
			    		        		title: "Seguimiento a la Oferta",
			    		        		width: 795,
			    		        		layout: "anchor",
			    		        		colspan: 2,
			    		        		defaults: {
			    		                    anchor: "100%",
			    		                    align: "center"
			    		                },
			    		                items: [{
			    		                	xtype:  "form",
			    		                	id: "formSeguimientoOferta",
			    		                	bodyPadding: "5 5 5 5",
			    	        	        	
			    	        	        	layout: {
			    	        	        		type: "table",
			    								columns: 2,
			    								tableAttrs: {
			    						            style: {width: "300px", "margin-top": "5px;"},
			    						            align: "center"
			    								}
			    	        	        	},
			    	        	        	defaults: Asg.Form.defaults({width: 300}),
			    		                	items:[
			    	                	       	{xtype: "label",text: "Estado Actual:", cls: "x-form-item", width: 125},
			    	                	       	{xtype: "label", id:"lblEstadoOferta", text: jsonObject.estadoActual || "", cls: "x-form-item", width: 100},
			    	                	       	{xtype: "label", text: "Nuevo Estado:", cls: "x-form-item", width: 125},
			    	                	       	{
			                    	       			xtype: "combo",
			                    	       			id: "estadoVacante",
			                    	       			store: new Ext.data.SimpleStore({
			                    	        			data : jsonObject.ctgEstadosVacante,
			                    	        			fields: ["id", "value"]
			                    	       			}),
			    	                                displayField: "value",
			    	                                valueField: "id"
			                	       			},
			    	                	       	{xtype: "label", text: "Observaciones:", cls: "x-form-item", width: 125},
			    	                	       	{xtype: "textarea", id: "observacion"}
			    		                	],bbar:[
		    		                	        '->',
			    	                	       {
		    		                	        	text : "<b>Cambiar Estado<b>",
		    		                	        	handler: function(){
		    		                	        		
		    		                	        		Asg.Message.progress("Cambiando Estado...");
		    		                	    			Ext.Ajax.request({
		    		                	    				timeout: Asg.constants.TIMEOUT_SECONDS,
		    		                	    				url: Asg.constants.CONTEXT_PATH + "/red/oferta/cambiarEstadoOferta",
		    		                	    			    params: {
		    		                	    			    	"redOferta.redOfertaId":  redOfertaId,
		    		                	    			    	"ctgEstadoVacanteVinculacion.ctgEstadoVacanteVinculacionId" : Asg.Utils.getValue("estadoVacante"),
		    		                	    			    	"redEstadoSeguimientoOfertaObservacion" : Asg.Utils.getValue("observacion")
		    		                	    			    },
		    		                	    			    callback: function(options, success, response){
		    		                	    			    	Ext.Msg.hide();
		    		                	    			    	if(success){
		    		                	    			    		var jsonObj = Asg.Utils.ajaxRequestGetJson(response);
		    		                	    			    		Ext.getCmp("lblEstadoOferta").setText(jsonObj.estadoActual);
		    		                	    			    		jsonObject.redEstadoSeguimiento = jsonObj.redEstadoSeguimiento;
		    		                	    			    		Asg.Utils.setValue("estadoVacante","");
		    		                	    			    		Asg.Utils.setValue("observacion","");
		    		                	    			    	}
		    		                	    			    }
		    		                	    			});
		    		                	        	}
	    		                	        	},{
	    		                	        		text: "<b>Ver Bitacora de Estados<b>",
	    		                	        		handler: function(){
	    		                	        			RedBitacoraEstadoSeguimiento.windowBitacoraEstadoSeguimiento(jsonObject.redEstadoSeguimiento);
	    		                	        		}
	    		                	        	}
			                                ]
			    		                }]
			    		        	},{
			    		        		xtype: "fieldset",
			    		        		title: "Seguimiento a Demandantes y Generacion de Documentacion",
			    		        		width: 795,
			    		        		layout: "anchor",
			    		        		colspan: 2,
			    		        		defaults: {
			    		                    anchor: "100%",
			    		                    align: "center"
			    		                },
			    		                items: [{
			    		                	xtype:  "form",
			    		                	id: "formSeguimientoDemandante",
			    		                	bodyPadding: "5 5 5 5",
			    	        	        	
			    	        	        	layout: {
			    	        	        		type: "table",
			    								columns: 2,
			    								tableAttrs: {
			    						            style: {width: "300px", "margin-top": "5px;"},
			    						            align: "center"
			    								}
			    	        	        	},
			    	        	        	defaults: Asg.Form.defaults({width: 300}),
			    		                	items:[
			    	                	       	{xtype: "label", text: "Nuevo Estado:", cls: "x-form-item", width: 150},
			    	                	       	{
			                    	       			xtype: "combo",
			                    	       			name: "estadoPostulante",
			                    	       			id: "estadoPostulante",
			                    	       			store: new Ext.data.SimpleStore({
			                    	       				data : jsonObject.ctgEstadoPostulante,
			                    	        			fields: ["id","value"]
			                    	       			}),
			    	                                displayField: "value",
			    	                                valueField: "id"
			                	       			},
			                	       			{xtype: "label", text: "Razon de no Contrataci\u00F3n:", cls: "x-form-item", width: 150},
			                	       			{
			                    	       			xtype: "combo",
			                    	       			name: "ctgRazonNoContratacion",
			                    	       			id: "ctgRazonNoContratacion",
			                    	       			store: new Ext.data.SimpleStore({
			                    	       				data : jsonObject.ctgRazonesNoContratacion,
			                    	        			fields: ["id","value"]
			                    	       			}),
			    	                                displayField: "value",
			    	                                valueField: "id"
			                	       			}
			    	                	       	
			                    	       	],bbar:[
                    	       	        		'->',
			     	                	       {
                    	       	        			text : "<b>Cambiar Estado<b>",
                    	       	        			handler: function(){
                    	       	        				RedEnvioSeguimiento.cambiarEstadosDemandante(redOfertaId);
                    	       	        			}
            	       	        				}
			                                ]
			    		                },{
			    		                	xtype: "grid",
								    		id: "redDemandantesByOfertaGrid",
								    		width: 745,
			    							height: 150,
								    		store: new Ext.data.Store({
								    			fields: [
							    			         "reddemandantenombres",
							    					 "reddemandantefolio",
							    					 "ctgestadopostulantevinculacionid",
							    					 "ctgestadopostulantevinculacionnombre", 
							    					 "reddemandantetelefono",
							    					 "reddemandantefecharegistro",
							    					 "seleccionado"
												],
												data: jsonObject.redDemandantes || []
								    		}),
								    		columns: [
							    		          {
							    		        	  xtype:"checkcolumn",
							    		        	  align: "center",
							    		        	  dataIndex: "seleccionado", 
							    		        	  width: 30
												  },
										          {
													   xtype: "actioncolumn",
													   width: 60,
													   hidden: false,
													   items: [
												        {
												     	   icon: Asg.constants.CONTEXT_PATH + "/resources/images/delete.png", 
												     	   iconCls: "icon", 
												     	   handler: function(grid, rowIndex, colIndex) {
												     		
												     	   }
												        },
												        {
												        	icon: Asg.constants.CONTEXT_PATH + "/resources/images/cartaenvio.gif",
												        	iconCls: "icon", 
												        	 handler: function(grid, rowIndex, colIndex) {
												        	/*	 var records = Ext.getCmp("redDemandantesByOfertaGrid").getStore().queryBy(function(record) {
												         			return record.get('seleccionado') === true;
												         		});
												         		var ids = [];
												         		records.each(function(record) {
												         			ids.push(record.get('reddemandantefolio'));
												         		});*/
												        		 var rows = [grid.getStore().getAt(rowIndex)];
												        		 var folio = rows[0].get("reddemandantefolio");
												        		 var urlServer = "/pentaho/content/reporting/reportviewer/report.html?solution=CubosMTPS&path=%2FReportes&name=carta_envio.prpt#Folio="+folio+"&userid=reportes&password=reportes&output-target=pageable%252Fpdf&showParameters=false&solution=CubosMTPS&path=%252FReportes&name=carta_envio.prpt";
												        		 window.open("http://192.168.1.20:8181"+urlServer,"Carta","resizable=yes,scrollbars=yes,status=yes");
												         		//alert("imprimiendo carta"+ rows[0].get("reddemandantefolio"));
													     	 }
												        	
												        }
												    ]
												  },
												  
										          {header: "<b>DEMANDANTE</b>", dataIndex: "reddemandantenombres", flex: 1}
									        ],
									        features: [{
			    				            	ftype: 'rowbody',
			    				                getAdditionalData: Asg.Grid.getAdditionalData,
			    				                getRowBodyContents: RedEnvioSeguimiento.getRowBodyContentsDem
			    				            }]
			    		                }]
			    		        	}]
			    	        	})
			    			}).show();
			    		}
			    	}
			    }
			});
			
		}
	};
}();